package com.tian.es.service;

import com.tian.common.CommonResult;
import com.tian.dto.ChargeStationCountRespDto;
import com.tian.dto.StationInfoIndexRespDto;
import com.tian.es.entity.ChargeStationLocation;
import com.tian.es.entity.StationNearByPoiParam;

import java.util.List;

/**
 * {@code @description:} 充电站信息与ES索引服务
 *
 * @author tianwc 公众号：Java后端技术全栈
 * 在线刷题 1200+java面试题和1000+篇技术文章：<a href="https://woaijava.cc/">博客地址</a>
 * {@code @date:} 2024-07-23 18:45
 * {@code @version:} 1.0
 */
public interface ChargeStationEsService {

    /**
     * 充电站信息录入到ES中
     */
    void add(ChargeStationLocation chargeStationLocation);

    /**
     * 从ES索引中删除某个充电站信息
     */
    void delete(Integer id);

    /**
     * 删除ES中的站点索引
     *  todo:基本上用不到，因为一般不会删除索引
     */
    CommonResult<Boolean> deleteIndex();

    /**
     * 根据经纬度获取附近充电站信息
     */
    CommonResult<List<StationInfoIndexRespDto>> getNearByLocation(StationNearByPoiParam stationNearByPoiParam);

    /**
     * 获取充电站总数
     */
    CommonResult<ChargeStationCountRespDto> count();
}
